package cn.edu.tjnu.control;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import cn.edu.tjnu.bean.UserInfoBean;

public class LoginAction extends ActionSupport {

	/**
	 * 定义了一个userInfoBean的实力变量，并且为该实力变量提供 getter/setter方法接口
	 * 使用struts框架提供的数据类型转换功能，将前台表单页面的数据转换到aciton类的实例变量中
	 * 例如：将login.jsp页面中的表单数据，转换到 变量 userInfo中来， 也就是，loginaciton使用 变量
	 * userInfo获取前台 login.jsp页面的表单数据
	 */
	private UserInfoBean userInfo;

	/**
	 * 基本类型的变量：用于接受前台传递的用户的真实姓名的值 也需要提供getter/setter方法接口
	 * 
	 */
	private String userRealNamestr;

	private static final long serialVersionUID = 1L;

	public String doLogin() {
		System.out.println("用户名：" + userInfo.getUserLoginName() + "@" + userInfo.getUserPsw());
		System.out.println("用户真实姓名：" + this.getUserRealNamestr());

		// 组建一个list数据结构
		List<UserInfoBean> lstUsers = new ArrayList<UserInfoBean>();
		// 创建一个新的用户实体对象
		UserInfoBean user0 = new UserInfoBean();
		user0.setUserLoginName("stu1001");
		user0.setUserRealName("小明");
		user0.setUserPsw("123");
		// 添加到list中
		lstUsers.add(user0);
		// 创建一个新的用户实体对象
		UserInfoBean user1 = new UserInfoBean();
		user1.setUserLoginName("stu1002");
		user1.setUserRealName("小照");
		user1.setUserPsw("123456");
		// 添加到list中
		lstUsers.add(user1);
		
		//将list对象放入session缓存中，传到前台，然后使用ognl表达式进行解析
		//从ActionContext中获取session对象
		Map<String, Object>  session = ActionContext.getContext().getSession();

		//将传递到前台的值，缓存到session对象中
		session.put("myListUsers", lstUsers);
		return "suc";
	}

	public UserInfoBean getUserInfo() {
		return userInfo;
	}

	public void setUserInfo(UserInfoBean userInfo) {
		this.userInfo = userInfo;
	}

	public String getUserRealNamestr() {
		return userRealNamestr;
	}

	public void setUserRealNamestr(String userRealNamestr) {
		this.userRealNamestr = userRealNamestr;
	}

}
